空间计算 Sample详情
最后更新时间:2020年12月11日
移动端支持对几何要素的空间计算功能,包括距离长度、面积、角度等计算,如提供计算两点距离、计算直线角度、计算两线交点等接口。
提供几何空间要素间的距离计算、交点计算、周长面积计算等功能。
接口 | 说明 |
---|---|
GeometryOperator.calculateDistance() | 计算两点距离 |
GeometryOperator.calculateDistanceDotToLine() | 计算点到折线的距离 |
GeometryOperator.calculateIntersectionLineLine() | 计算折线与折线交点 |
GeometryOperator.calculateLineLength() | 计算折线长度 |
GeometryOperator.calculatePolygonPerimeter() | 计算区周长 |
GeometryOperator.calculateArea() | 计算区面积 |
说明:另外,com.zondy.mapgis.spatial.SpaCalculator类也提供一些空间计算方法,为上层应用服务。例如,计算两点具体的方法:SpaCalculator.distance()。
接口 | 说明 |
---|---|
Angle.calculateAzimuth() | 计算方位角 |
Angle.calculateSlopeAngle() | 计算坡度角 |
Angle.calculateVectorAngle() | 计算向量夹角 |
Angle.calculateVectorRotateAngle() | 计算向量旋转角 |
具体实现方法如下:
计算两个Dot点之间的距离。
//计算两点距离 double distance = GeometryOperator.calculateDistance(dot1, dot2); double distance = SpaCalculator.distance(dot1, dot2);
计算线段的角度。
//获取线的坐标点 Dot[] line = graphicPolylinA.getPoints(); //计算线段的角度 double angleValue = Angle.calculateAzimuth(line[0], line[1]); String angle = String.format("%.4f", angleValue);//保留四位小数 //显示计算结果 currentResult = "该直线角度为:" + angle + "度";
计算两条线的所有交点。
//取两条线的点序列 Dot[] line1 = graphicPolylinA.getPoints(); Dot[] line2 = graphicPolylinB.getPoints(); GeoVarLine geoVarLineA = new GeoVarLine(); GeoVarLine geoVarLineB = new GeoVarLine(); for (int i = 0; i < line1.length; i++) { geoVarLineA.append2D(line1[i]); } for (int i = 0; i < (line2.length); i++) { geoVarLineB.append2D(line2[i]); } //计算两条线的交点 ArrayListcrossDots = new ArrayList (); GeometryOperator.calculateIntersectionLineLine(geoVarLineA, geoVarLineB, mTolerance, crossDots, null);